package com.shuo.dsa.niuke;

import java.util.HashMap;
import java.util.Map;

/**
 * 在一个字符串(0<=字符串长度<=10000，全部由字母组成)中找到第一个只出现一次的字符,
 * 并返回它的位置, 如果没有则返回 -1
 *      思路: 直接丢map里面然后遍历一遍str即可...不需要linkedMap来辅助
 */
public class FirstNotRepeatingChar {
    public int FirstNotRepeatingChar(String str) {
        Map<Character, Integer> map = new HashMap<>();
        char[] chars = str.toCharArray();
        for (char aChar : chars) {
            map.merge(aChar, 1, (a, b) -> a + b);
        }
        for (int i = 0; i < chars.length; i++) {
            if (1 == map.get(chars[i]))
                return i;
        }
        return -1;
    }
}
